#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

//创建新线程的函数入口（任务）
void* routine1(void* avg)
{
    printf("子线程tid1开始\n");
    pthread_t id = pthread_self();
    for(int i=1; i<= 100; i++)
    {
        printf("tid1:%ld, %s\n", id, "666");
    }
    printf("子线程tid1结束\n");
}

void* routine(void* avg)
{
    printf("子线程tid2开始\n");
    pthread_t id = pthread_self();
    for(int i=1; i<= 100; i++)
    {
        printf("tid1:%ld, %s\n", id, "777");
    }
    printf("子线程tid2结束\n");
}

int main(int argc, char* argv[])
{
    //线程ID
    pthread_t tid1;
    pthread_t tid2;

    // 创建一个子线程
    // 1 线程编号 2 线程属性 3 子线程的函数入口 4 传递给线程的参数
    // 返回 成功返回0 失败返回错误码
    int ret = pthread_create(&tid1, NULL, &routine1, NULL);
    // if(ret != 0)
    // {
    //     perror("创建线程失败\n");
    //     exit(1);
    // }
    // printf("线程创建成功！\n");
    ret = pthread_create(&tid2, NULL, &routine, NULL);
    // 阻塞主线程 等待子线程返回
    ret = pthread_join(tid1, NULL);
    ret = pthread_join(tid2, NULL);

    printf("main 结束\n");
    return 0;
}